"""
    自定义jwt认证成功返回数据,返回值中增加username和user_id。
    需要在jwt 配置中指定自定义方法
"""



def jwt_response_payload_handler(token, user=None, request=None):

    return {
        'token': token,
        'id': user.id,
        'username': user.username
    }

# 自定义分页器
from rest_framework.pagination import PageNumberPagination
from rest_framework.response import Response

class LargeResultsSetPagination(PageNumberPagination):
    page_size_query_param = 'pagesize' #page_size_query_param 前端发送的每页数目关键字名，默认为None
    max_page_size = 10	#max_page_size 前端最多能设置的每页数量


    # 重写父类分页返回
    #  def get_paginated_response(self, data):
    #     return Response(OrderedDict([
    #         ('count', self.page.paginator.count),
    #         ('next', self.get_next_link()),
    #         ('previous', self.get_previous_link()),
    #         ('results', data)
    #     ]))


    def get_paginated_response(self, data):
        return Response ({
            'count': self.page.paginator.count,  # 总数量
            'lists': data,  # 用户数据
            'page': self.page.number,  # 当前页数
            'pages': self.page.paginator.num_pages,  # 总页数
            'pagesize': self.page_size  # 后端指定的页容量

        })
